"""
@author: xxw
@file: 05.多进程-01.py
@time: 2023/6/27 11:00
"""

# 进程的组成：PCB(struct)  数据段  程序段
# pcb： pid  用户属主、用户属组  优先级  进程状态  地址  打开的文件

import os, time
print("start...fork")
result = os.fork()

print("outerside pid is:", result)
if result == 0:
    print("child process")
    print("child pid is:", os.getpid())
else:
    print("parent process")
    time.sleep(60)
    print("parent pid is:", os.getpid())

# 僵尸进程：子进程退出，父进程没有调用wait
#           或者waitpid去获取子进程的状态，那么这个子进程的进程描述符就会依然存在系统中，
#           这种进程称为僵尸进程


# 孤儿进程：父进程退出，子进程还在运行，那么这个子进程就会成为孤儿进程
#           孤儿进程会被pid为1的进程所收养

# linux下进程状态：
# R  运行和就绪等待状态
# S  可中断的睡眠状态
# Z  僵尸进程状态
# D  不可中断的睡眠状态
# X  即将销毁的状态
# T  停止的状态
